package tech.aistar.day09;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * 本类用来演示: HashMap
 * 适合分组,统计
 *
 * @author: success
 * @date: 2022/7/28 4:07 下午
 */
public class MapDemo {
    public static void main(String[] args) {
        //key-value的形式
        //key-无序不可重复
        //如果key相同,key是拒绝加入的,但是后者的value是覆盖的
        //put底层
        Map<Integer,String> maps = new HashMap<>();

        maps.put(1,"java");
        maps.put(2,"python");
        maps.put(3,"mysql");
        maps.put(2,"boot");

        System.out.println(maps);

        //判断是否包含某个key
        System.out.println(maps.containsKey(3));//true

        System.out.println(maps);

        //迭代方式 - 第一种
        //将map集合中的所有的key全部放入到set集合
        Set<Integer> keySet = maps.keySet();
        Iterator<Integer> iter = keySet.iterator();
        while(iter.hasNext()){
            Integer key = iter.next();
            //根据key去获取value
            String value = maps.get(key);
            System.out.println(key+":"+value);
        }

        //迭代方式 - 第二种
        //将map集合中的每个key,value封装到一个entry对象中
        //entry对象放入到set集合中
        Set<Map.Entry<Integer,String>> sets = maps.entrySet();
        Iterator<Map.Entry<Integer,String>> iters = sets.iterator();
        while(iters.hasNext()){
            Entry<Integer,String> entry = iters.next();
            Integer key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"->"+value);
        }
    }
}
